<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Migration Paths</title>
</head>

<body>

<h2>From 3.0 to 3.1</h2>

<p>By default JBehave Web dependes on JBehave Core 3.1.  It still supports running with JBehave Core 3.0
except when excercising 3.1 functionality, such as meta filtering in the Run Story page.</p>

<h2>From 2.x to 3.x</h2>

<p>The 3.x Web Runner is a webapp build on <a
	href="http://wicket.apache.org">Wicket</a>, while the 2.x Web Runner
was built on <a href="http://waffle.codehaus.org">Waffle</a>.</p>

<p>Wicket and Waffle share a similar philosophy (embeddable, pure
Java, no XML aside from the webapp web.xml), but Wicket offers a
component-oriented approach (as opposed to a pure MVC one) that makes
Java-driven rich web functionality easier and is supported by a much
wider community base.</p>

<p>Just like in Waffle the application was configured by extending a
Registrar class, in Wicket users need to extend an Application class.
The Registrar and Application classes serve functionally the same scope
and migrating from one to the other is quite straightforward. The <a
	href="customising-web-runner.html">customising web runner</a> page
details the configuration of the application.</p>

<p>The main different between the <b>JBehaveRegistrar</b> and the <a
	href="javadoc/web-runner/org/jbehave/web/runner/wicket/WebRunnerApplication.html">WebRunnerApplication</a>
is that in the WebRunnerApplication instances of components need to be
returned, while in the JBehaveRegistrar we had void registering
methods that invoked parent registering methods.</p>

<p>The <a
	href="https://github.com/jbehave/jbehave-web/blob/master/examples/trader-runner">trader
runner example</a> provides a fully-functional example.</p>

</body>
</html>